在大型專案中,一定會和他人合作開發,然而每個人 commit 的方式可能不同,就會造成整個專案管理變得很混亂。因此就需要有一套規則或模式,讓大家有一致的共識
提出了流程,也就是Git Flow、Github Flow、Gitlab Flow
由Vincent Driessen在 2010 年提出,是最早提出的一套流程
主要有 master、develop、hotfix、release 、 feature 這五種分支
master(或 main)develop
feature
release
hotfix
各分支的用途
master
v1.0.0
develop
feature
feature/login-page
develop
release
develop 切出master(發佈)以及 develop(保留修正)hotfix
master 切出,修完再合併回 master 和 develop

圖片來源:https://dev.to/truongpx396/git-flow-overview-and-common-git-commands-1odh
可以看到這個圖,主線就是develop的分支,有新功能要開發或要測試就會從這個分支切出去,做完更新再merge回來
後來 GitHub 提出了一個更簡化的流程,適合持續部署(CI/CD) 的專案
只有一條主要分支(main 或 master)
main 切一個分支(例如:feature/login)main
特點:
develop、release,就一條 main 搞定融合 Git Flow + Github Flow,主要是為了支援不同的部署環境
特點:
https://ithelp.ithome.com.tw/articles/10281080
https://gitbook.tw/chapters/gitflow/why-need-git-flow
https://dev.to/truongpx396/git-flow-overview-and-common-git-commands-1odh